Saving data in the event of power loss has been addressed in many instances, and typically comprises storing the data in a nonvolatile memory, such as a battery backed up memory or a disk drive, and also addressed by electrical back up systems to allow power to continue to be supplied to the system to allow any data to be saved.
More likely to occur, however, is a reboot of the system, and typically while the system is operating. This is especially a concern for data that is to be written to recordable media. Typically, the data is temporarily stored or buffered in random access memory as it is being written to recordable media. The original source of that data is typically freed to overwrite the data. One example is a data storage system that stores data on recordable media, and indicates to the host that supplied the data, that the data has been received when it is temporarily stored or buffered in random access memory. The host system may follow a similar procedure, and place the data in a buffer to be provided to the data storage system, releasing the program that was the source of that data. Data that has been read from the recordable media, and is being altered before being rewritten, is also typically stored in random access memory during the processing.
A system reboot typically involves clearing the random access memory. As the result, the data stored in the random access memory will be deleted. If the data is being altered, the alterations are lost. Thus, if lost, read data being processed would have to be reaccessed and the processing conducted again. If write data being temporarily stored or buffered is lost, no source data may be available to reconstitute that data. A solution has been to make the reboot process wait, move the data to a nonvolatile store, wait for the reboot to complete, access the data from the nonvolatile store, and again temporarily store or buffer the data. Processing of the data or conducting the process of writing the data may then be resumed. This, however, requires two types of storage for the data, one of which is necessary only during reboot, and requires processes for moving the data back and forth.